home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
C/C++ Interactive Reference Guide
/
C-C++ Interactive Reference Guide.iso
/
c_ref
/
csource5
/
357_01
/
cstar1.exe
/
ASSN.TST
< prev
next >
Wrap
Text File
|
1991-11-15
|
3KB
|
159 lines
assign() {
int x,y,z,w;
char a,b,c,d;
a = '\012';
b = '\005';
c = '\000';
d = '\377';
x = 5;
y = 10;
z = 15;
w = -5;
u = 1; /* supposed to fail in PL68K */
/* stuff that ought to fail */
a = a << b;
a = b >> c;
a = b * c;
a = b / c;
a = b % c;
a = b ^ c;
a = b & c;
a = b | c;
a = b < c;
a = b >= c;
a = b == c;
a = !b;
a = (int) b;
a = b;
b + c;
a = b ~ c;
b + x;
a = b + x; /* mixed mode */
a = b && x;
a = x && x;
a = x && b;
a = b && c;
a = x < y;
/* relatively simple assignments of various kinds */
a = b;
a += '\001';
a += b;
a -= '\001';
a -= b;
a <<= '\005';
a >>= '\004';
b ^= d1;
a &= '\005';
a &= b;
a |= '\007';
b |= c;
b ~= b;
b = a + ~b + c + d;
b = a + (~b + ~c);
b = a + (~(~b + ~c));
b = a + (~b + (~c + ~d)); /* run out of temps somewhere */
a = b + c;
b = d + a + b + c;
b = d - a - b + c;
a = b = c = d = 1;
a = (b + c) - ( a + d);
a = (b + c) - (b=a + d);
a = b + (c + d);
a = b + (c + (d + a)); /* at some point one runs out of temps */
b = -a + -b + -c;
/* I wonder about these forms ... */
a = b ++ c;
a = b + +c;
a = b -- c;
a = b - -c;
a = b - - c;
a = b+++c;
a = b + ++c;
a = b---c;
a = +b;
/* now do the integers */
/* the erroneous zone */
x = x << y;
x = y >> z;
x = y * z;
x = y / z;
x = y % z;
x = y ^ z;
x = y & z;
x = y | z;
x = y + z + y & z;
x = y + z + (y & z);
x = y = z + (int) u;
x ^= y;
/* relatively simple assignments */
x = y;
x += 1;
x += y;
x -= 1;
x -= y;
x <<= 5;
x >>= 4;
y ^= d1;
x &= 5;
x &= y;
x |= 7;
y |= z;
w != w;
w = !z & x & y;
x = y + z;
y = w + x + y + z;
y = d - x - y + z;
y = -x + -z + -w;
y ~= y;
y = x + ~y + z + w;
y = x + (~y + ~z);
y = x + (~(~y + ~z));
y = x + (~y + (~z + ~w)); /* run out of temps somewhere */
u = d + w; /* u is presumably undefined */
x = y = z = w = 15;
x = (y + z) - (w - x);
x = (y + z) + (z=w - x);
w = (w=z + x) - (w=y + z);
/* and now put a different cast on it */
x = (int) x;
x = (int) a + y - ((int) b) + z);
x = (int)(char) x;
x = ((int)(char)) x;
x = ((int)(char) x) + y - 1;
a = (char) x + b - (c &= 5);
a = (char) z;
a &= (char) y;
a &= (char) (y = x + 5);
x &= (int) (a = b + 5);
x = (int) ((a = (char) b) + '\001);
a = (int) a; /* mixed mode */
u = (int) a; /* our undefined friend */
x = (int) (x + u);
x = (int) (x + (char) u);
/* miscellaneous */
x = sizeof(int);
x = sizeof(a);
x = sizeof(struct abc*);
x = sizeof(long);
x = sizeof(long *);
}